package xyz.zhouzhaodong.rabbitmq.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Date;

/**
 * 消息发送者
 *
 * @author zhouzhaodong
 */
@RestController
public class SenderController {

    @Resource
    AmqpTemplate amqpTemplate;

    Logger logger = LoggerFactory.getLogger(SenderController.class);

    @RequestMapping(value = "/send")
    public String sendMessage(String message) {
        logger.info("消息发送开始时间：" + new Date());
        // 这里convertAndSend第一个参数是交换机或者队列的名称
        // 第二个参数可以是routingKey
        // 最后一个参数就是消息
        // 这里需要注意的是，如果之前有交换机或者队列已经注册了，再改变其routingKey分批获取消息就不能实现了。
        amqpTemplate.convertAndSend("topicExchange", "topic_one", message);
        return "发送成功";
    }

    @RequestMapping(value = "/sendNoKey")
    public String sendMessageNoKey(String message) {
        logger.info("消息发送开始时间：" + new Date());
        amqpTemplate.convertAndSend("topicExchange", message);
        return "发送成功";
    }

}
